package com.dragon.modules.yuegou.enums;

import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * 支付来源
 *
 * @author 程泽
 *
 */
public enum PaySource {
    /**
     * 悦购
     */
    YGIRL(0, "悦购"),
    /**
     * 悦荷包
     */
    WALLET(1, "悦荷包"),
    /**
     * 悦商管
     */
    YSQ(2, "悦商管"),
    /**
     * 悦商惠
     */
    YSH(3, "悦商惠"),
    /**
     * 员工版
     */
    YGB(4,"员工版"),
    /**
     * APP
     */
    APP(5,"APP") ,
    /**
     * 悦商惠
     */
    YSH_APP(6, "悦商惠app"),
    /**
     * 支付宝小程序
     */
    ALI_XCX(7, "支付宝小程序");

    /**
     * 枚举标识
     */
    private final Integer code;

    /**
     * 别名
     */
    private final String alias;

    private PaySource(Integer code, String alias) {
        this.code = code;
        this.alias = alias;
    }

    public Integer getValue() {
        return code;
    }

    /**
     * 枚举标识
     *
     * @return code
     */
    public Integer getCode() {
        return code;
    }

    /**
     * 别名
     *
     * @return alias
     */
    public String getAlias() {
        return alias;
    }

    /**
     * 把code转化为费用类型枚举
     *
     * @param code 代码
     * @return
     */
    public static MsgType from(Integer code) {
        if (code == null) {
            return null;
        }
        return CODE_MAP.get(code);
    }

    /**
     * Code Map for MsgType
     */
    private static final Map<Integer, MsgType> CODE_MAP = Stream.of(MsgType.values())
            .collect(Collectors.toMap(MsgType::getCode, e -> e));

}
